const promise1 = Promise.resolve("First");
const promise2 = Promise.resolve("Second");
const promise3 = Promise.reject("Third");
const promise4 = Promise.resolve("Fourth");

const runPromises = async () => {
    const res1 = await Promise.all([promise1, promise2]);
    console.log(res1) //? 能打印
    const res2 = await Promise.all([promise3, promise4]);
    console.log(res2) //? 不打印
    return [res1, res2];
};

runPromises()
    .then((res) => console.log('res',res))
    .catch((err) => console.log('err',err));  //? Third
/*
? Promise.all 方法可以并行式运行 promise。如果其中一个 promise 失败了，Promise.all 方法会带上被 reject 的 promise 的值rejects。
? 在这个例子中， promise3 带着 "Third" 值 reject。
? 我们在调用 runPromises 时在 runPromises 函数内部的 catch 方法去捕获任意 error 从而捕获到被 reject 的值。
? 因为 promise3 带着 "Third" 被 reject，所以只有 "Third" 打印。
 */
